package org.bsplus.rpc;

import java.util.List;

import org.bsplus.rpc.dto.IssueDTO;
import org.bsplus.rpc.dto.IssueSeverityDTO;
import org.bsplus.rpc.dto.IssueTypeDTO;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import org.bsplus.rpc.dto.IssueListItemDTO;
import org.bsplus.util.pagination.PageLoadRequest;
import org.bsplus.util.pagination.ResultPage;

/**
 * Issue Service Definition
 */
@RemoteServiceRelativePath("../rpc/issue")
public interface IssueRPCService extends RemoteService
{
	/**
	 * Get all issues
	 * 
	 * @return List of IssueDTO's
	 */
	List<IssueDTO> getAllIssues();

	List<IssueTypeDTO> getAllIssueTypes();

	List<IssueSeverityDTO> getAllIssueSeverities();

	String createIssue(IssueDTO issue);

        ResultPage<IssueListItemDTO> listIssues(PageLoadRequest pageLoadRequest);
}
